using FytSoa.Application.Sys;
using FytSoa.Domain.Erp;

namespace FytSoa.Application.Erp;

public class ErpWarehouseProductInfoDto:ErpWarehouseProductDto
{
    public ErpProductDto Product { get; set; }
}

/// <summary>
/// 产品详情-包括出入库数量/编号等
/// </summary>
public class ErpProductDetailDto : AppEntity
{
    /// <summary>
    /// 仓库编号
    /// </summary>
    public long WarehouseId { get; set; }
    
    /// <summary>
    /// 仓库信息
    /// </summary>
    public ErpWarehouseSimpleDto Warehouse { get; set; }
    
    /// <summary>
    /// 产品唯一编号
    /// </summary>
    public long ProductId { get; set; }

    /// <summary>
    /// 产品编号
    /// </summary>
    public string Number { get; set; }

    /// <summary>
    /// 产品名称
    /// </summary>
    public string Name { get; set; }
    
    /// <summary>
    /// 供应商
    /// </summary>
    public ErpSupplierSimpleDto Supplier { get; set; } = new();
    
    /// <summary>
    /// 产品类别
    /// </summary>
    public SysCodeSimpleDto Type { get; set; } = new();
    
    /// <summary>
    /// 产品单位
    /// </summary>
    public SysCodeSimpleDto Unit { get; set; } = new();
    
    /// <summary>
    /// 市场价
    /// </summary>
    public decimal MarketPrice { get; set; }

    /// <summary>
    /// 成交价
    /// </summary>
    public decimal Price { get; set; }
    
    /// <summary>
    /// 产品规格
    /// </summary>
    public List<ErpProduct.Specs> Specifi { get; set; } = new();

    
    /// <summary>
    /// 坤存量
    /// </summary>
    public int Count { get; set; } = 0;

    /// <summary>
    /// 入库编号
    /// </summary>
    public string InNumber { get; set; }
    
    /// <summary>
    /// 入库日期
    /// </summary>
    public DateTime? InTime { get; set; }
    
    /// <summary>
    /// 入库数量
    /// </summary>
    public int InCount { get; set; } = 0;
    
    /// <summary>
    /// 出库编号
    /// </summary>
    public string OutNumber { get; set; }
    
    /// <summary>
    /// 出库日期
    /// </summary>
    public DateTime? OutTime { get; set; }
    
    /// <summary>
    /// 出库数量
    /// </summary>
    public int OutCount { get; set; } = 0;
}